using ETask.Api.Dtos;
using ETask.Api.Models;

namespace ETask.Api.Repositories
{
    /// <summary>
    /// 审计日志仓储接口
    /// </summary>
    public interface IAuditLogRepository : IRepository<AuditLog>
    {
        /// <summary>
        /// 分页查询审计日志
        /// </summary>
        /// <param name="queryParams">查询参数</param>
        /// <returns>分页结果</returns>
        Task<PagedResult<AuditLogDto>> GetPagedListAsync(AuditLogQueryParams queryParams);

        /// <summary>
        /// 根据用户ID获取最近的日志
        /// </summary>
        /// <param name="userId">用户ID</param>
        /// <param name="count">数量</param>
        /// <returns>日志列表</returns>
        Task<List<AuditLogDto>> GetRecentLogsByUserIdAsync(int userId, int count = 10);
    }
}
